Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Reverse minimist. Convert an object of options into an array of command-line arguments.
The dargs npm package is used to convert an object of options into an array of command-line arguments. This is particularly useful when you need to pass configuration options to a command-line tool in a programmatic way.
Basic Conversion
Converts an object of options into an array of command-line arguments. In this example, the object { foo: 'bar', baz: true, qux: false } is converted to ['--foo', 'bar', '--baz'].
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options);
console.log(args); // ['--foo', 'bar', '--baz']
Excluding Keys
Allows you to exclude specific keys from the conversion. In this example, the key 'qux' is excluded from the resulting array.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { excludes: ['qux'] });
console.log(args); // ['--foo', 'bar', '--baz']
Including Only Specific Keys
Allows you to include only specific keys in the conversion. In this example, only the keys 'foo' and 'baz' are included in the resulting array.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { includes: ['foo', 'baz'] });
console.log(args); // ['--foo', 'bar', '--baz']
Using Short Flags
Converts long flags to short flags if specified. In this example, the long flags are converted to short flags.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { shortFlag: true });
console.log(args); // ['-f', 'bar', '-b']
Minimist is a package for parsing command-line arguments. Unlike dargs, which converts an object to command-line arguments, minimist is used to parse command-line arguments into an object. It is often used for the opposite purpose of dargs.
Yargs is a more feature-rich package for parsing command-line arguments and generating an elegant user interface. It provides more advanced features like command handling, middleware, and more, making it more comprehensive compared to dargs.
Commander is a package for building command-line interfaces. It provides a way to define commands, options, and arguments, and it also parses command-line arguments. While dargs focuses on converting objects to arguments, Commander is more about building complete CLI applications.
Reverse
minimist
. Convert an object of options into an array of command-line arguments.
Useful when spawning command-line tools.
$ npm install --save dargs
const dargs = require('dargs');
const input = {
_: ['some', 'option'], // values in '_' will be appended to the end of the generated argument list
foo: 'bar',
hello: true, // results in only the key being used
cake: false, // prepends `no-` before the key
camelCase: 5, // camelCase is slugged to `camel-case`
multiple: ['value', 'value2'], // converted to multiple arguments
pieKind: 'cherry',
sad: ':('
};
const excludes = ['sad', /.*Kind$/]; // excludes and includes accept regular expressions
const includes = ['camelCase', 'multiple', 'sad', /^pie.*/];
const aliases = {file: 'f'};
console.log(dargs(input, {excludes}));
/*
[
'--foo=bar',
'--hello',
'--no-cake',
'--camel-case=5',
'--multiple=value',
'--multiple=value2',
'some',
'option'
]
*/
console.log(dargs(input, {excludes, includes}));
/*
[
'--camel-case=5',
'--multiple=value',
'--multiple=value2'
]
*/
console.log(dargs(input, {includes}));
/*
[
'--camel-case=5',
'--multiple=value',
'--multiple=value2',
'--pie-kind=cherry',
'--sad=:('
]
*/
console.log(dargs({
foo: 'bar',
hello: true,
file: 'baz'
}, {aliases}));
/*
[
'--foo=bar',
'--hello',
'-f', 'baz'
]
*/
Type: Object
Object to convert to command-line arguments.
Type: Object
Type: Array
Keys or regex of keys to exclude. Takes precedence over includes
.
Type: Array
Keys or regex of keys to include.
Type: Object
Maps keys in input
to an aliased name. Matching keys are converted to arguments with a single dash (-
) in front of the aliased key and the value in a separate array item. Keys are still affected by includes
and excludes
.
Type: boolean
Default: true
Setting this to false
makes it return the key and value as separate array items instead of using a =
separator in one item. This can be useful for tools that doesn't support --foo=bar
style flags.
console.log(dargs({foo: 'bar'}, {useEquals: false}));
/*
[
'--foo', 'bar'
]
*/
Type: boolean
Default: false
Exclude false
values. Can be useful when dealing with strict argument parsers that throw on unknown arguments like --no-foo
.
Type: boolean
Default: false
By default, camelCased keys will be hyphenated. Enabling this will bypass the conversion process.
console.log(dargs({fooBar: 'baz'}));
//=> ['--foo-bar', 'baz']
console.log(dargs({fooBar: 'baz'}, {allowCamelCase: true}));
//=> ['--fooBar', 'baz']
MIT © Sindre Sorhus
FAQs
Reverse minimist. Convert an object of options into an array of command-line arguments.
The npm package dargs receives a total of 6,899,798 weekly downloads. As such, dargs popularity was classified as popular.
We found that dargs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.